package pl.shenlon.runtime;

import java.awt.EventQueue;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

import javax.swing.JOptionPane;

import pl.shenlon.assets.Assets;
import pl.shenlon.poker.gui.AppFrame;

public class AppManager {

	// TODO: poker game check conditions
	// TODO: selected on load!
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			@Override
			public void run() {
				Assets.initialize(getClass().getResource(
						"/data/assets/assets_config.xml"));
				Properties defaultProperties = new Properties(), properties;
				File defaultTestHandsFile = null;
				try {
					defaultProperties.load(getClass().getResourceAsStream(
							"/data/config.properties"));
					properties = new Properties(defaultProperties);
					properties.load(new FileInputStream(
							"data/config.properties"));
					defaultTestHandsFile = new File(properties
							.getProperty("defaultTestHandsFile"));
					AppFrame frame = new AppFrame();
					frame.getConfigPanel()
							.setTestHandFile(defaultTestHandsFile);
					frame.setVisible(true);
				} catch (IOException | IllegalArgumentException ex) {
					JOptionPane
							.showMessageDialog(
									null,
									"Wystąpił błąd w trakcie odczytywania pliku z rękami. Aplikacja nie zostanie włączona",
									"Wystąpił błąd", JOptionPane.ERROR_MESSAGE);
					// ex.printStackTrace();
					System.exit(1);
				}


			}
		});
	}
}